package com.ws.demo2;

import java.io.*;
import java.nio.charset.StandardCharsets;

public class Demo {
    public static void main(String[] args) {
        //IO流之字节流与字节缓冲流
        writer();
        reader();
    }
    /**
     * 输出流
     */
    private static void writer() {
        //1.创建字节输出流
        //2.创建字节缓冲输出流
        //3.定义数据 输出到文件
        //4.写入到文件按
        //5.强制刷新
        //6.释放资源
        //jdk1.7新特性
        try( //1.创建字节输出流
             OutputStream os = new FileOutputStream ("src/com/ws/demo2/Demo.txt");
             //2.创建字节缓冲输出流
             BufferedOutputStream bos = new BufferedOutputStream (os);)
        {
            //3.定义数据 输出到文件
            String str = "加油";
            byte[] bytes = str.getBytes ();
            //4.写入到文件
            bos.write (bytes);
            //5.强制刷新
            bos.flush ();
            //6.释放资源,自动释放资源

        }catch (Exception e){
            e.printStackTrace ();
        }
    }
    /**
     * 输入流,读取数据
     */
    private static void reader() {
        //字节输入流
        //字节缓冲输入流
        //byte数据接收读取的数据
        //length接收读取数据的长度
        //循环读取数据
        //输出读取数据
        //释放资源
        try(
                //字节输入流
             InputStream is =   new FileInputStream ("src/com/ws/demo2/Demo.txt");
             //字节输入缓冲流
                BufferedInputStream bis = new BufferedInputStream (is);

        ){
            //定义byte数组接收读取的数据
            byte[] bytes = new byte[1024 * 1024];
            //length 接收读取到的数据
            int length;
            //循环读取数据,
            while((length = bis.read (bytes)) != -1){
                     //输出读取的数据
                System.out.println (new String (bytes,0,length));
            }
        }catch (Exception e){
            e.printStackTrace ();
        }
    }
}
